#ifndef _QUANTUM_TYPE_H__
#define _QUANTUM_TYPE_H__

#include <string>
#include <string_view>

namespace type {
using os_char_type = char;
using os_string = std::basic_string<os_char_type>;
using os_string_view = std::basic_string_view<os_char_type>;
#define __(s) s

#ifdef UNICODE

using char_type = wchar_t;
using input_type = wint_t; // get_wch will use
using string = std::basic_string<char_type>;
using string_view = std::basic_string_view<char_type>;
#define _(s) L##s

#else
using char_type = char;
using input_type = int; // getch will use
using string = std::basic_string<char_type>;
using string_view = std::basic_string_view<char_type>;
#define _(s) s
#endif // UNICODE

}; // namespace type

#endif //_QUANTUM_TYPE_H__